//JS
const recorderManager = wx.getRecorderManager()
const innerAudioContext = wx.createInnerAudioContext()
var tempFilePath = ''
var app=new getApp();
Component({
  properties: {
    myProperty: {
      type: String,
      value: '',
      observer: function () { }
    },
 
  },
  data: {
 
    // 录制默认id
    recuod_id: 1,
    // 录制时间
    times: 0,
    formFile:[],
    formFileID:2,
    j: 1, //帧动画初始图片  
    // isSpeaking: false,//是否正在说话  
    voices: [], //音频数组  
    // 默认按住录音
    recod_name: "长按开始录制",
    // 默认初始化录制icon
    rocud_icon: "/pages/Image/setting.png",
    // 换一换
    text_value: "你像那天边的云，飘泊不定，叫人难以追寻；你像那水中的萍，流移四方，叫我难以琢磨。你能告诉我吗？怎样才能追上你的身影，怎样才能与你相伴不离？",
    // 获取到当前录音开始时间
    start_time: "",
    // 录制最终时间
    speck_time: 0,
    //存储计时器
    setInter: '',
    num: 1,
    list: [],
    // 文本内容
    newLists: [{
      name: "世上最凄绝的距离是两个人本来距离很远，互不相识，忽然有一天，他们相识，相爱，距离变得很近。"
    }, {
      name: "不管是晴天阴天雨天，能见到你的一天，就是晴朗的一天；不管是昨天今天明天，能和你在一起的一天，就是美好的一天。"
    }, {
      name: "也许上帝让你在遇见那个合适的人之前遇见很多错误的人，所以，当这一切发生的时候，你应该心存感激。"
    }, {
      name: "最美好的事是有人爱你，最安心的事是有人信你，最幸福的事是有人陪你，最奢侈的事是有人等你。"
    }, {
      name: "你像那天边的云，飘泊不定，叫人难以追寻；你像那水中的萍，流移四方，叫我难以琢磨。你能告诉我吗？怎样才能追上你的身影，怎样才能与你相伴不离？"
    }],
    myself_value: [{
      name: "我曾为时光匆匆流逝而遗憾，曾为生命如此短暂而感伤，曾为花草树木的调残而惆怅，曾为生活的坚信而彷徨，当情海思绪积压我心头的时候，我想寻找一叶扁舟，在大海上游荡，让思绪尽情的释放。"
    }, {
      name: "上天给了我黑色的眼睛，我用他来寻找光明，就像向日葵执着的寻找阳光。"
    }, {
      name: "都说生活不止眼前的苟且，还有诗和远方的田野，我其实就如不知所谓的鸟儿一样，向着心中火火的朝阳，奋力疾飞，将她放在心中，温暖我余下的整个人生。"
    }, {
      name: "既不回头，何必不忘。既然无缘，何须誓言。今日种种，似水无痕。明夕何夕，君已陌路。"
    }, {
      name: "我是这样的人读过一些书，呆过几座城。 遇过一些事，爱过几个人。 不爱日出，喜欢晚云。 不求晴好，只享阴凉。 讨厌咖啡，乱品白水。 有过可笑的理想，流过无谓的汗水。 认真思考时少言寡语，头脑空白时喋喋不休。 有别人艳羡的事业，却无自己想要的幸福 一枚凡人，十足情种。 特想变坏，无奈品种。 还有续章，来日方长。"
    }],
 
    recod_color: "#333",
  },
  methods: {
    // 打开
    getopen(res) {
      wx.setNavigationBarTitle({
        title: "录音功能"
      })
      this.setData({
        ShowNones: true
      })
    },
  // 点击换一换
  btn_change: function (res) {
    var that = this;
    for (var i in that.data.newLists) {
      console.log(that.data.newLists[i].name);
      //判断是否达到了最后一个，此时数组中的数据没有与输入框中相同的，设置成数组的第一个值
      if (i == (that.data.newLists.length - 1)) {
        that.setData({
          text_value: that.data.newLists[0].name
        });
        break;
      }
      //如果有相同的数据则换数组的下一个数据
      if (that.data.newLists[i].name == that.data.text_value) {
        var num = parseInt(i) + 1;
        console.log(that.data.newLists[num].name);
        that.setData({
          text_value: that.data.newLists[num].name
        });
        break;
      }
    }
  },
  // 完成编辑
  btn_edit: function () {
    var loveCardId = 1;
    var that = this;
    console.log("card", loveCardId);
    wx.navigateTo({
      url: '/pages/make_self/make_self',
    })
    wx.stopVoice();
    clearInterval(that.data.setInter);
    // 获取到结束时间
    that.stop();
  },
  // 下一步
  btn_next: function () {
    wx.navigateTo({
      url: '/pages/make_self/make_self',
    })
    var that = this;
    wx.stopVoice();
    clearInterval(that.data.setInter);
    // 获取到结束时间
    that.stop();
  },
  //手指按下  
  touchdown: function (e) {
    var that = this;
    console.log('touchStart....')
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.record']) {
          //第二次才成功授权
          //将计时器赋值给setInter
          that.data.setInter = setInterval(
            function () {
              var speck_time = parseInt(that.data.speck_time + 1);
              that.setData({
                speck_time: parseInt(speck_time),
                recod_name: "松开停止录制",
                recod_color: "#fff",
                rocud_icon: "../../../record/show.png"
              });
              var times = 0;
              times = speck_time / 60 * 100;
              console.log("time", times);
              that.setData({
                times: times
              })
 
              if (that.data.speck_time > 0 && that.data.speck_time <= 59) {
                that.start();
              } else {
                clearInterval(that.data.setInter);
                // 获取到结束时间
                that.stop();
                that.setData({
                  recuod_id: 2,
                })
                wx.showToast({
                  title: '录音最长60S哦！',
                  duration: 2000,
                  icon: "none"
                })
              }
            }, 1000);
        } else {
          return;
        }
      }
    })
  },
  //手指抬起  
  touchup: function () {
    var that = this;
    console.log("手指抬起了...", that.data.speck_time)
    clearInterval(that.data.setInter);
    // 获取到结束时间
    that.stop();
    if (that.data.speck_time > 3) {
      //清除计时器  即清除setInter
      clearInterval(that.data.setInter);
      // 获取到结束时间
      that.stop();
      that.setData({
        recuod_id: 2,
        // isSpeaking: false,
        recod_name: "长按开始录制",
        recod_color: "#333",
        rocud_icon: "../../../record/none.png",
      })
    } else {
      //清除计时器  即清除setInter
      clearInterval(that.data.setInter);
      // 获取到结束时间
      that.stop();
      wx.showToast({
        title: '请重新录制',
        duration: 2000,
        icon: "none"
      })
      that.setData({
        recuod_id: 1,
        // isSpeaking: false,
        recod_name: "长按开始录制",
        recod_color: "#333",
        speck_time: "0",
        rocud_icon: "../../../record/none.png",
      })
    }
 
  },
  // 重新录制
  btn_show: function () {
    this.setData({
      recuod_id: 1,
      speck_time: 0
    })
    wx.stopVoice();
  },
  //开始录音的时候
  start: function () {
    const options = {
      duration: 60000, //指定录音的时长，单位 ms
      sampleRate: 16000, //采样率
      numberOfChannels: 1, //录音通道数
      encodeBitRate: 96000, //编码码率
      format: 'mp3', //音频格式，有效值 aac/mp3
      frameSize: 50, //指定帧大小，单位 KB
    }
    //开始录音
    recorderManager.start(options);
    recorderManager.onStart(() => {
      console.log('recorder start')
    });
    //错误回调
    recorderManager.onError((res) => {
      console.log(res);
    })
  },
  //播放声音
  btn_play: function () {
    // innerAudioContext.autoplay = true
    // innerAudioContext.src = this.tempFilePath,
    //   innerAudioContext.onPlay(() => {
    //     console.log('开始播放')
    //   })
    // innerAudioContext.onError((res) => {
    //   console.log("播放失败",res.errMsg)
    //   console.log(res.errCode)
    // })
    innerAudioContext.src = this.tempFilePath,
      innerAudioContext.play()
 
  },
  
  //停止录音
  stop: function () {
    recorderManager.stop();
    recorderManager.onStop((res) => {
      this.tempFilePath = res.tempFilePath;
      this.data.formFile = res.tempFilePath;
      this.data.formFileID = 1;
      console.log('停止录音', res.tempFilePath) //输出文件路径
      //tempFilePath= res
      tempFilePath = res;
      this. handleUploadVoice();
    })
  },
   // 上传录音
  handleUploadVoice: function() {
    wx.uploadFile({
      url: 'http://ypbitx.natappfree.cc/MyServlet/upload', 
      filePath: tempFilePath.tempFilePath,
      name: 'file',
      success: function (res) {
        console.log("录音上传成功",res)
      },
      fail: function(res) {
        console.log("录音上传失败",res)
      }
    })
  },
    
  // 保存录制
  btn_save: function () {
    var that = this;
    wx.showToast({
      title: '保存成功',
      icon: "none",
      duration: 2000
    })
    console.log(that.data.list.filePath);
  },
  // 预览
  btn_sel: function () {
 
 
 
  },
  },
  created: function () {
  },
  attached: function () {
 
  },
  ready: function () {
 
  },
  moved: function () {
 
  },
  detached: function () {
 
  },
});